The present invention relates to a communication system, a terminal device and a communication control device that perform communication with another terminal device that is under control of a different device provided with a network address translation (NAT) function (hereinafter referred to as a NAT device).
When peer to peer (P2P) communication is performed between terminal devices that are under control of different NAT devices (NAT routers, for example), types (Cone NAT, Symmetric NAT, and the like) of the NAT devices need to be identified. After the types of the NAT devices are identified, an appropriate communication procedure (User Datagram Protocol (UDP), hole punching, or the like) is selected and performed in accordance with the identified types. When communication is performed using an appropriate communication procedure, P2P communication becomes possible between the terminal devices.
For example, a communication device is proposed that accurately determines the type of the NAT device by adding improvement while complying with Request for Comments (RFC) 3489, as a method to identify the type of a NAT device.